/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.ulb.f203.projet.vues;

import be.ulb.f203.projet.metier.Graphe;
import be.ulb.f203.projet.tools.GraphAlgorithms;
import java.util.Observable;
import java.util.Observer;

/**
 *
 * @author Srk
 */
public class GrapheConsole implements Observer {

    private Graphe g;

    /**
     * Crée un nouveau GrapheConsole qui affiche les résultats du graphe dès
     * qu'il change.
     *
     * @param graphe Graphe représenté.
     */
    public GrapheConsole(Graphe graphe) {
        this.g = graphe;
        graphe.addObserver(this);
        update(null, null);
    }

    @Override
    public void update(Observable o, Object arg) {
        System.out.println("PLUS COURTS CHEMINS DE LA RACINE VERS TOUS LES NOEUDS :");
        System.out.println("=======================================================");
        if(g.getPlusCourtsChemins()!= null){
        String[] dijkstra = g.getPlusCourtsChemins().getResults();
        for (String s : dijkstra) {
            System.out.println(s);
            System.out.println("----------------------------------------------");
        }
        }else{
            System.out.println("Pas de solution");
        }
        
        System.out.println("PLUS COURT CHEMIN PARTANT DE LA RACINE PASSANT PAR TOUS LES NOEUDS :");
        System.out.println("====================================================================");
        if(g.getPlusCourtCheminAllNodes()!=null) {
            System.out.println(g.getPlusCourtCheminAllNodes());
        }else{
            System.out.println("Pas de solution");
        }
    
    }
}
